'use strict'

// CommonJS 模块化规范
// 这个函数是会运行在云端的 NodeJS 环境中
exports.main = async (event, context) => {
	// event 为客户端上传的参数
	console.log('运行在云端的NodeJS环境下，接收到的参数event : ', event)
	
	/* 在云函数中通过传统方式操作数据库 */
	// 获取数据库引用
	const db = uniCloud.database()
	// 获取集合(表)的引用
	const users = db.collection('users')
	
	try {
		// 先根据用户名查询是否存在该注册用户
		let res = await users.where({username: event.username}).count()
		if (res.total >= 1) {
			// 如果 res 中返回的 total 大于等于1，则说明数据库中已存在当前需要注册的用户名数据
			return {
				status: 400,
				message: '用户名已存在，注册失败'
			}
		}
		
		// 向集合(表)中添加保存数据记录
		res = await users.add(event)
		
		// 返回数据给客户端
		return {
			status: 200,
			message: '注册成功',
			id: res.id,
		}
	} catch (error) {
		console.log('error:::', error)
		return {
			status: 500,
			message: '用户添加出错...' + error.message,
		}
	}
}
